Combine two dictionaries adding values for common keys¶
D = Counter(D1) + Counter(D2)
Combine two dictionaries adding values for common keys.
D1 = {‘a’: 100, ‘b’: 200, ‘c’:300}
D2 = {‘a’: 300, ‘b’: 200, ‘d’:400}
Sample output:
Counter({‘a’: 400, ‘b’: 400, ‘d’: 400, ‘c’: 300})
def combine_two_dict_coll(D1, D2):
from collections import Counter
return dict(Counter(D1) + Counter(D2))
def combine_two_dict(D1, D2):
new_dict = {}
for k1, k2 in zip(D1, D2):
# print("Keys: ", k1, "and", k2)
if k1 == k2:
new_dict[k1] = D1[k1] + D2[k2]
else:
new_dict[k1] = D1[k1]
new_dict[k2] = D2[k2]
return new_dict
# no order
def combine_two_dict_01(D1, D2):
new_dict = {}
for k1 in D1.keys():
for k2 in D2.keys():
if k1 == k2:
new_dict.update({k2: D1[k2] + D2[k1]})
else:
new_dict.update({k1:D1[k1], k2:D2[k2]})
return new_dict
Test:
D1 = {'a': 100, 'b': 200, 'c':300}
D2 = {'a': 300, 'b': 200, 'd':400}
print(combine_two_dict_coll(D1, D2)) # {'a': 400, 'b': 400, 'c': 300, 'd': 400}
print(combine_two_dict(D1, D2)) # {'a': 400, 'b': 400, 'c': 300, 'd': 400}
print(combine_two_dict_01(D1, D2)) # {'a': 300, 'b': 200, 'd': 400, 'c': 300}